<?php

/**
 * Class Binary
 *
 */

class Binary
{
    /**
     * @desc 计算机是可以识别传参num的二进制的，所以将每个位上的数和1与运算就可以得到每一位上的数。负数的二进制是补码
     * @param int $num
     * @return string
     */
    public static function numToBinary(int $num): string
    {
        $binary = '';
        // 因为int占4个字节，所以4*8=32
        $bitSize = 32;
        for ($i = $bitSize - 1;$i >= 0;$i--){
            $binary .= ($num & (1 << $i)) == 0 ? 0 : 1;
        }
        return $binary;
    }

}
$gift = "100000";
//echo intval($gift);
echo 128 & 2202379813004;
die;
echo PHP_EOL;
print_r(Binary::numToBinary(4));
echo PHP_EOL;
print_r(Binary::numToBinary(-4));